// Copyright © SixtyFPS GmbH <info@slint.dev>
// SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0

struct Struct := { def: int, }
//            ^warning{':=' to declare a struct is deprecated. Remove the ':='}

export SuperSimple := Rectangle {
//                 ^warning{':=' to declare a component is deprecated. The new syntax declare components with 'component MyComponent {'. Read the documentation for more info}
    DoesNotExist {
//  ^error{Unknown element 'DoesNotExist'}
    }

    dd := DoesNotExist2 {
//        ^error{Unknown element 'DoesNotExist2'}
        abc: 42;
        cb => {}
        animate abcd { duration: 3ms; }
        changed efgh => { self.foo(); }
        Hallo {}
//      ^error{Unknown element 'Hallo'}
        Rectangle {
            background: blue;
            foo_bar: blue;
//          ^error{Unknown property foo-bar in Rectangle}
//                   ^^error{Unknown unqualified identifier 'blue'}
        }
    }

    float {
//  ^error{'float' cannot be used as an element}
        abc: 42;
        cb => {}
        Hallo {}
//      ^error{Unknown element 'Hallo'}

    }

    s := Struct {
//       ^error{'Struct' cannot be used as an element}
        def: "42";
        xyz: "42";
        Hallo {}
//      ^error{Unknown element 'Hallo'}
    }

    Rectangle {
        foo_bar: blue;
//      ^error{Unknown property foo-bar in Rectangle}
//               ^^error{Unknown unqualified identifier 'blue'}
    }

    NativeLineEdit { }
//  ^error{Unknown element 'NativeLineEdit'. (The type exists as an internal type, but cannot be accessed in this scope)}

    Opacity { }
//  ^error{Unknown element 'Opacity'. (The type exists as an internal type, but cannot be accessed in this scope)}

}
